Add lazy Inductor compilation to graph_pp_runner#360
Merged
Conversation
This was referenced Mar 10, 2026
sanketpurandare
approved these changes
Mar 17, 2026
Contributor
sanketpurandare
left a comment
There was a problem hiding this comment.
LGTM, can merge after CI passes
5288597 to
2bac665
Compare
The module-level `dispatcher.sharding_propagator = CustomShardingPropagator()` was leaking into other test files (e.g. test_api.py) when run in the same pytest process, causing `aten.copy_` failures because the custom propagator doesn't have rules for ops that the default DTensor propagator handles. test_dtensor.py's two test classes (ImplicitRegistrationTest, DimShardingTest) inherit from DTensorTestBase which uses MultiProcessTestCase -- each test spawns subprocesses that re-import the module. Those subprocesses don't run pytest fixtures, so they need the custom propagator installed at module level. We gate the module-level install on `multiprocessing.current_process().name` to only run in spawned workers, and use a module-scoped autouse pytest fixture to install/restore the propagator in the main process. Authored with Claude. stack-info: PR: #367, branch: xmfan/stack/32
Add _execute_graph() that lazily compiles graph modules with compile_fx_inner on first invocation. Controlled by an inductor kwarg threaded through all _run_* functions. GraphPPRunner accepts inductor=True and propagates it to all GraphPipelineStage instances, which the stage_* action functions read when calling _run_*. Authored with Claude. stack-info: PR: #360, branch: xmfan/stack/30
xmfan
added a commit
that referenced
this pull request
Mar 17, 2026
* Scope CustomShardingPropagator to test_dtensor tests via pytest fixture The module-level `dispatcher.sharding_propagator = CustomShardingPropagator()` was leaking into other test files (e.g. test_api.py) when run in the same pytest process, causing `aten.copy_` failures because the custom propagator doesn't have rules for ops that the default DTensor propagator handles. test_dtensor.py's two test classes (ImplicitRegistrationTest, DimShardingTest) inherit from DTensorTestBase which uses MultiProcessTestCase -- each test spawns subprocesses that re-import the module. Those subprocesses don't run pytest fixtures, so they need the custom propagator installed at module level. We gate the module-level install on `multiprocessing.current_process().name` to only run in spawned workers, and use a module-scoped autouse pytest fixture to install/restore the propagator in the main process. Authored with Claude. stack-info: PR: #367, branch: xmfan/stack/32 * Add lazy Inductor compilation to graph_pp_runner Add _execute_graph() that lazily compiles graph modules with compile_fx_inner on first invocation. Controlled by an inductor kwarg threaded through all _run_* functions. GraphPPRunner accepts inductor=True and propagates it to all GraphPipelineStage instances, which the stage_* action functions read when calling _run_*. Authored with Claude. stack-info: PR: #360, branch: xmfan/stack/30 * Add --inductor flag to example_ds3_pp with FORCE_BALANCED_ROUTING The DSv3 MoE implementation uses .tolist() and data-dependent grouped_mm offsets that Inductor cannot compile. Add FORCE_BALANCED_ROUTING to the model that makes token-per-expert counts uniform and uses balanced all-to-all splits, eliminating all data-dependent ops. The --inductor CLI flag enables both Inductor compilation and forced balanced routing together. Authored with Claude. stack-info: PR: #361, branch: xmfan/stack/31
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked PRs:
Add lazy Inductor compilation to graph_pp_runner
Add _execute_graph() that lazily compiles graph modules with
compile_fx_inner on first invocation. Controlled by an inductor kwarg
threaded through all run* functions.
GraphPPRunner accepts inductor=True and propagates it to all
GraphPipelineStage instances, which the stage_* action functions
read when calling run*.
Authored with Claude.